"""
    格式化内容
"""

# 使用 % 格式化字符串
def format_str():
    # 格式化字符串
    NAME = "张三"
    print("欢迎您，%s" %NAME)
    print('您的姓名是:%(name)s' %{'name': NAME})

    # 格式化数字
    NUM  = 12.123456
    print('您输入的数字是:%.0f' %NUM) # 不保留小数
    print('您输入的数字是:%.1f' %NUM) # 保留1位小数
    print('您输入的数字是:%.2f' %NUM) # 保留2位小数
    print('您输入的数字是:%.3f' %NUM) # 保留3位小数
    INT = 54
    print('您的编号是:%04d' % INT)
    print('您的编号是:%05d' % INT)
    print('您的编号是:%06d' %INT)

    # 格式化元组
    T = (1,2,3,4,5)
    print('您输入的元组是:%s' %str(T))


# 使用 format 格式化字符串
def format_str_new():
    # 使用位置
    print('欢迎您，{0}, {1}, --- {0}'.format('张三', '小武'))

    # 使用名称
    print('您好, {username}, 您的编号是{num}'.format(username = "小武", num = 123))

    # 使用字典
    d = {
        'username': '小六',
        'num': 321
    }
    print('您好, {username}, 您的编号是{num}'.format(**d))

    # 使用元组
    point = (1, 0)
    print('坐标位置: {0[0]}:{0[1]}'.format(point))

    # 使用类
    user = User('大武', 22)
    print(user.show())
    print(user)

class User(object):

    def __init__(self, username, age):
        self.username = username
        self.age = age

    # 有了内置的 __str__ 函数后可以直接打印内容
    def __str__(self):
        return self.show()

    def show(self):
        return '用户名: {self.username}, 年龄:{self.age}'.format(self = self)



if __name__ == '__main__':
    format_str_new()